package com.example.api.mall.utils;

import cn.hutool.db.nosql.redis.RedisDS;
import com.example.common.core.constant.TokenConstant;
import lombok.extern.slf4j.Slf4j;
import redis.clients.jedis.Jedis;

import java.util.concurrent.TimeUnit;

/**
 * @name: RedisUtil
 * @description: 基于hutool的redis工具类
 * @author: xw.s
 * @date: 2021/5/31-9:19
 */
@Slf4j
public class RedisUtil {

    private static Jedis jedis;

    static{
        jedis = RedisDS.create().getJedis();
    }

    /**
     * set  默认ttl  -1  永不过期
     * @param key
     * @param val
     * @return
     */
    public static void set(String key, String val){
        jedis.set(key, val);
    }

    /**
     * set
     * @param key
     * @param val
     * @param seconds 多少s后过期
     * nxxx：nx只有key不存在才set  xx只有key存在才set
     * expx: ex秒 px毫秒
     */
    public static void set(String key, String val, int seconds){
//        jedis.set(key, val, "nx", "ex", seconds);
        jedis.set(key, val);
        jedis.expire(key, seconds);
    }

    /**
     * get
     */
    public static String get(String key){
        return jedis.get(key);
    }

    /**
     * 设置过期
     * @param key
     * @param seconds
     */
    public static void expire(String key, int seconds){
        jedis.expire(key, seconds);
    }

    /**
     * del
     * @param key
     */
    public static void del(String key){
        jedis.del(key);
    }

    /**
     * 是否存在
     * @param key
     */
    public static Boolean exists(String key){
        return jedis.exists(key);
    }

}
